//c语言的不定参数测试
#define _GNU_SOURCE  
#include<stdio.h>
#include<stdarg.h>
#include<stdlib.h>
#include<string.h>
//不定参数的使用
#define LOG1(info,...) do \
{\
    printf("[%s][%d]"info,__FILE__,__LINE__,##__VA_ARGS__);\
}while(0)


void TestUseFormat()
{
    LOG1("您好\n");
}
//不定参数的提取
void my_printf(const char* format,...)
{
    va_list ap;
    va_start(ap,format);
    char* buff;
    //会自动在buff尾部添加\0
    int res = vasprintf(&buff,format,ap);
    if (res != -1)
    {
        // printf("%d",buff[strlen(buff)]);
        printf(buff);
        free(buff);
    }
    va_end(ap);
}
int main()
{
    //TestUseFormat();
    my_printf("%s","hello word!");
    return 0;
}

